#ifndef BOARD_H
#define BOARD_H

#include <list>
#include "Move.h"
#include "Piece.h"
using namespace std;

class Board
{
// properties
public:
// TODO: change this table as private   
	Piece pieces[64];

// constructors
public:
	Board();
	Board(Board p);
	~Board();

// functions
public:
	void Clear();
    void Clear(int square);
	void SetPiece(Piece piece, int square);
	Piece GetPiece(int square);
    list<Move> GetLegalMoves();
    void Move(int startSquare, int destSquare);
    bool IsSquareEmpty(int square);
    bool IsEqual(Board b);
    int Evaluate(ref int[] coeff);

};

#endif

